home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / comm / mail / YAMscripts.lha / PGPread.rexx < prev    next >
OS/2 REXX Batch file  |  1997-05-27  |  3KB  |  85 lines

  1. /* PGPread.rexx 1.1 by knikulai@utu.fi - 07-May-97
  2. ** Go check http://www.utu.fi/~knikulai/ARexx.html for other useful scripts! 
  3. **
  4. ** - Environment variables PGPPASS and PGPPATH need to be set correctly.
  5. ** - Edit the variables in the beginning of the script to suit your system
  6. ** - If the script doesn't work, execute it from shell so you can see the
  7. **   output and maybe figure out what is wrong.
  8. */
  9.  
  10. options results
  11. scrn='YAMscreen'    /* Change the correct value here or leave it like this*/
  12. pgp='work:pgp/bin/PGP'    /* Where is PGP? */
  13. opts='-sea'        /* Options for encoding reply */
  14. outdir='ram:'        /* decoded message is written here */
  15. pager='c:Next'        /* This program is used to display the decoded message */
  16. editor='sys:tools/memacs'/* This editor is used to write the reply */
  17. quote='>'        /* This is added in the beginning of each line if you reply */
  18.  
  19. /* WARNING: If you change something below this line, things might stop working! */
  20.  
  21. address 'YAM'
  22. 'GetMailInfo file'    /* Get the filename of the message */
  23. if rc>0 then do
  24.     'Request "You need to select a message first!" "_Ok"'
  25.     exit
  26.     end
  27. fn=result
  28. 'GetMailInfo From'    /* Who sent it? */
  29. to_id=result
  30. if pos('<',result)>0 then to_id=translate(substr(result,pos('<',result)),'','><','')
  31.  
  32.  
  33. /* Create a name for decoded message */
  34. x=lastpos('/',fn)
  35. y=lastpos(':',fn)    /* Remove path */
  36. if x<y then x=y
  37. outname=outdir || substr(fn,x+1) || '.plain'
  38.  
  39. address command 'delete >nil:' outname     /* Make sure there isn't that file already */
  40.  
  41. /* Open Shell window and redirect STDIN and STDOUT */
  42. Call Close(STDOUT)
  43. Call Close(STDIN)
  44. Call Open(STDOUT,'CON:1/11/638/130/PGP Output/CLOSE/WAIT/SCREEN'scrn,'w')
  45. Call Pragma('*',STDOUT)
  46. Call Open(STDIN,'*')                            
  47.  
  48. address command pgp fn '-o' outname        /* Decode the message */
  49. address command pager outname               /* Display the message */
  50. address 'YAM' 'Request "Do you want to reply the message?" "_Yes|_No"'
  51. if result=0 then exit
  52.  
  53. /* Quote the decoded message */
  54. if open(decoded,outname,'r') & open(quoted,outdir'quoted.msg','w') then do
  55.     do while ~eof(decoded)
  56.         r=readln(decoded)
  57.         call writeln(quoted,quote || r)
  58.         end
  59.     call close(quoted)
  60.     call close(decoded)
  61.     end
  62. else do /* Either file couldn't be opened */
  63.     'Request "Can not quote the message!" "_Ok"'
  64.     say "You can close the window now"
  65.     exit
  66.     end
  67. 'Request "Do you want to encode your reply?" "_Yes encode it|_No, use plain text"'
  68. if result=1 then do
  69.     address command editor outdir'quoted.msg'
  70.     address command 'delete >nil:' outdir'encoded.msg'
  71.     address command pgp opts outdir'quoted.msg -o' outdir'encoded.msg' to_id 
  72.     address 'YAM'
  73.     'MailReply'
  74.     'WriteLetter' outdir'encoded.msg' 
  75.     end
  76. else do
  77.     address 'YAM'
  78.     'MailReply'
  79.     'WriteLetter' outdir'quoted.msg'
  80.     end
  81. say "You can close the window now"
  82. Call Close(STDOUT)
  83. Call Close(STDIN)
  84. exit
  85.